package com.hb.trade.server.center.au.controller;

import com.hb.core.pojo.center.au.dto.OrgFileRepositoryDTO;
import com.hb.core.pojo.center.au.entity.OrgFileRepository;
import com.hb.core.pojo.parent.PageResult;
import com.hb.trade.server.center.au.service.OrgFileRepositoryService;
import org.fzzn.core.model.msg.Message;
import org.fzzn.core.util.MsgUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 * 系统文件信息记录表 前端控制器
 * </p>
 *
 * @author jinhaolin
 * @since 2022-01-26
 */
@RestController
public class OrgFileRepositoryController {

    @Autowired
    private OrgFileRepositoryService service;

    /**
     * 查询企业文件列表分页
     *
     * @param orgFileRepositoryDTO
     * @return
     */
    @PostMapping("/orgFileRepository/pageOrgFile")
    public Message<PageResult<OrgFileRepositoryDTO>> pageOrgFile(@RequestBody OrgFileRepositoryDTO orgFileRepositoryDTO) {

        PageResult<OrgFileRepositoryDTO> pageResult = service.pageOrgFileByUserId(orgFileRepositoryDTO);
        return MsgUtil.success(pageResult);
    }

    /**
     * 保存企业文件信息
     * @param listOrgFileRepositoryDTO
     * @return
     */
    @PostMapping("/orgFileRepository/saveOrgFile")
    public Message<Boolean> saveOrgFile(@RequestBody List<OrgFileRepositoryDTO> listOrgFileRepositoryDTO) {
        for (OrgFileRepositoryDTO orgFileRepositoryDTO : listOrgFileRepositoryDTO) {
            OrgFileRepository orgFileRepository = orgFileRepositoryDTO.to(OrgFileRepository.class);
            Boolean flag = service.save(orgFileRepository);
            if (!flag) {
                return MsgUtil.fail("文件信息数据库保存失败");
            }
        }

        return MsgUtil.success();
    }

    /**
     * 删除企业文件信息
     * @param orgFileRepositoryDTO
     * @return
     */
    @PostMapping("/orgFileRepository/removeOrgFile")
    public Message<Boolean> removeOrgFile(@RequestBody OrgFileRepositoryDTO orgFileRepositoryDTO) {
        Boolean flag = service.removeById(orgFileRepositoryDTO.getId());
        return MsgUtil.success(flag);
    }


}
